#!/bin/bash
echo "hello bite!"

#可读变量
readonly tmp="www.baidu.com"
echo $tmp

#普通变量
tmp2=2
echo $tmp2
unset tmp2

#单引号里的任何字符都会原样输出，单引号字符串中的变量是无效的；
#单引号字串中不能出现单独一个的单引号（对单引号使用转义符后也不行），但可成对出现，作为字符串拼接使用
str='aaa'
echo $str

str2='aaa'bbb''
echo $str2

#双引号的优点：#双引号里可以有变量 #双引号里可以出现转义字符
str3="your name is \"$str\""
echo $str3

#输出字符串的长度
echo $str3 strlen is ${#str3}

#提取子字符串,从第2个字符开始，向后截取4个字符, 同样的字符串从下标是从0开始
echo ${str3:1:4} #正常情况下
echo ${str3:17:4} #非正常情况，长度超出,不会崩溃，只不过只会截取存在的字符

#shell 数组
arr=(1 2 3 4 5 hel)
#访问数组元素的方式
echo ${arr[0]}
echo ${arr[1]}
echo ${arr[2]}
echo ${arr[3]}
echo ${arr[4]}
#计算数组元素个数的方式
echo this arr size is ${#arr[*]}
#或者
echo this arr size is ${#arr[@]}

#计算数组元素中的某个元素的长度
echo ${#arr[5]} #arr计算的是hel的长度

#注释
:<<!
hehehheheh
hehehh
echo heheh
!

#可以为shell脚本传递参数，使用$n的方式获取，参数下标从1开始，例如$1 就代表命令行中的第一个参数
#当没有取到的时候$n就没有含义的
echo this filename is $1
echo this para1 is $2
echo this para2 is $3
echo this para3 is $4
echo this para4 is $5

# $#为传递给脚本的参数个数
# $$为当前的进程号
echo this process pid is $$

#算数运算符
#要使用expr这个命令
#加法 expr a + b 空格是必须要的
#减法 expr a - b 
#乘法 expr a \* b 需要对*进行转义，否则会和通配符混淆从而报错
#除法 expr a / b 
#取余 expr a % b

#*** 需要注意的是 如果使用 expr 计算然后赋值给一个变量 需要使用`` 该符号是在esc底下，并非单引号

val=`expr 10 \* 15`
echo $val
val1=150

#if判断
if [ $val == $val1 ]
then
    echo "val和val1相等"
fi

for str in 'this is bite keji'
do
    echo $str
done
